/**
 * 图片URL处理工具函数
 */

import { NETWORK_CONFIG } from '@/config/network.js'
// 服务器基础URL（环境化）
const BASE_URL = (() => {
  const apiUrl = NETWORK_CONFIG.API_BASE_URL
  // 如果是生产环境（包含 skillith.cn），去掉 /api 后缀
  if (apiUrl.includes('skillith.cn')) {
    return apiUrl.replace('/api', '')
  }
  // 开发环境直接使用，不需要 /api
  return apiUrl.replace(/\/$/, '')
})()

/**
 * 获取完整的图片URL
 * @param {string} imagePath - 图片路径
 * @param {string} defaultPath - 默认图片路径
 * @returns {string} 完整的图片URL
 */
export const getImageUrl = (imagePath, defaultPath = '/static/default-image.png') => {
  if (!imagePath) {
    return defaultPath
  }
  
  // 如果是相对路径，添加服务器地址
  if (imagePath.startsWith('/uploads/')) {
    return BASE_URL + imagePath
  }
  
  // 如果已经是完整URL，直接返回
  if (imagePath.startsWith('http://') || imagePath.startsWith('https://')) {
    return imagePath
  }
  
  return imagePath
}

/**
 * 获取用户头像URL
 * @param {string} avatarPath - 头像路径
 * @returns {string} 完整的头像URL
 */
export const getAvatarUrl = (avatarPath) => {
  // 如果没有头像，使用一个简单的默认头像
  return getImageUrl(avatarPath, '')
}

/**
 * 获取头像显示URL（兼容旧代码）
 * @param {string} avatarPath - 头像路径
 * @returns {string} 完整的头像URL
 */
export const getAvatarDisplayUrl = (avatarPath) => {
  if (!avatarPath) return '/static/images/default-avatar.png'
  if (avatarPath.startsWith('http')) return avatarPath
  // 使用统一的图片URL处理逻辑
  return getImageUrl(avatarPath, '/static/images/default-avatar.png')
}

/**
 * 获取企业头像URL
 * @param {string} avatarPath - 企业头像路径
 * @returns {string} 完整的企业头像URL
 */
export const getOrgAvatarUrl = (avatarPath) => {
  return getImageUrl(avatarPath, '/static/default-org-avatar.png')
}

/**
 * 验证图片URL是否有效
 * @param {string} url - 图片URL
 * @returns {boolean} 是否有效
 */
export const isValidImageUrl = (url) => {
  if (!url) return false
  
  // 检查是否是有效的URL格式
  if (url.startsWith('http://') || url.startsWith('https://')) {
    return true
  }
  
  // 检查是否是有效的本地路径
  if (url.startsWith('/') && url.length > 1) {
    return true
  }
  
  // 过滤掉无效的短字符串（如"hh"）
  return url.length > 3
}

/**
 * 获取头像显示URL（带错误处理）
 * @param {string} avatarPath - 头像路径
 * @param {string} defaultPath - 默认头像路径
 * @returns {string} 头像显示URL
 */
export const getDisplayAvatarUrl = (avatarPath, defaultPath = '') => {
  if (!avatarPath || !isValidImageUrl(avatarPath)) {
    return defaultPath
  }
  
  return getImageUrl(avatarPath, defaultPath)
}
